One common application that computing technology supports are graphical modeling tools (also called “graphical designers”). Graphical modeling tools facilitate the orderly and efficient construction of graphical models. Graphical models include the visual representation of a collection of interrelated objects. Graphical models may be used in a different way by a wide variety of domains. For instance, workflows, organization charts, electrical circuits, software architectures, software flowcharts, may each be represented using graphical models. There may be literally thousands of different applications in which graphical modeling tools may be useful. In each case, the types of objects and interrelationships may be quite different. Even within a single domain of application, there may be definite preferences on how the objects and interrelationships are displayed. For instance, one bank may prefer one graphical modeling style for representing economic transactions, while another bank may represent a different graphical modeling style for economic transactions.
Building graphical modeling tools is a challenging and time consuming task. The building of a typical graphical designer may involve a software developer implementing a design surface that implements the graphical notation, a toolbox that allows the user to drag and drop elements onto the design surface, a mechanism for representing properties of the objects on the design surface—the properties representing meaningful information about the problem the user is trying to model, and other User Interface (UI) elements to navigate through the model data.
One application for a graphical modeling tool is to help a user understand the operation of a computer program. Maintaining and understanding programs can be challenging. Large programs may have millions of lines of code that implement thousands of objects that interact with each other. Making changes to the code without properly understanding this interaction may cause the code to function in unintended ways. In response, companies have created graphical modeling tools that generate graphical representations of interactions within a program. Unfortunately, these tools often do not give a good understanding of the program and are limited in flexibility.